package com.cskaoyan.bean.vo;

import com.github.pagehelper.PageInfo;
import lombok.Data;

import java.util.List;

/**
 *  小程序，获取类目信息，
 *  点击分类中的类目之后，显示分类
 *
 */
@Data
public class WxGoodsAndCategoryListPageData<T,S> {

    Integer limit;
    Integer page;
    Integer pages;
    Integer total;
    List<T> list;
    List<S> filterCategoryList;


    /**
     * <h2> 使用 泛型方法 </h2>
     * @param sourceList
     */
    public static <T,S> WxGoodsAndCategoryListPageData ok(List<T> sourceList,List<S> filterCategoryList) {
        //执行完查询之后，可以获得分页结果 → 用哪些数据取决于你的前端需要哪些数据
        //PageInfo中需要传入查询结果
        PageInfo<T> userPageInfo = new PageInfo<T>(sourceList);

        // 两个 Bean 之间的转换 使用 BeanUtils ——> 进一步封装为 BeansCopyUtils
        WxGoodsAndCategoryListPageData<T,S> goodsAndCategoryPageData = new WxGoodsAndCategoryListPageData<>();
        goodsAndCategoryPageData.setPage(userPageInfo.getPageNum());
        goodsAndCategoryPageData.setLimit(userPageInfo.getPageSize());
        goodsAndCategoryPageData.setPages(userPageInfo.getPages());
        goodsAndCategoryPageData.setTotal((int) userPageInfo.getTotal());
        goodsAndCategoryPageData.setList(sourceList);
        goodsAndCategoryPageData.setFilterCategoryList(filterCategoryList);
        return goodsAndCategoryPageData;
    }
}
